#include "TxtOper.h"

#include <QTextCodec>
#include <QFile>
#include <QTextStream>
#include <QDebug>

JS_Oper::JS_Oper()
{
}

int JS_Oper::ReadAllLines(QString _strJsFile, QList<QString> _listLines)
{
    _listLines.clear();

    QTextCodec *code=QTextCodec::codecForName("utf8");//本人采用的是UTF8格式显示的
    QFile file(_strJsFile);
    file.open(QIODevice::ReadOnly);
    QTextStream stream(&file);
    stream.setCodec(code);//输出流的设置--------必须嘀
    while(stream.atEnd()==0)
        _listLines.append(stream.readLine());

    return 0;
}

int JS_Oper::JsBlockIndexs(QString _strJsFile, QList<int> &_list)
{
    _list.clear();

    QTextCodec *code=QTextCodec::codecForName("utf8");//本人采用的是UTF8格式显示的
    QFile file(_strJsFile);
    file.open(QIODevice::ReadOnly);
    QTextStream stream(&file);
    stream.setCodec(code);//输出流的设置--------必须嘀
    while(stream.atEnd()==0)
    {
        QString str = stream.readLine();
        if (str.startsWith("//###"))
        {
            QString strRight = str.right(str.length() - 5);
            int iIdx = strRight.toInt();
            if (iIdx != 0)
                _list.append(iIdx);
        }
    }

    return 0;
}

int JS_Oper::JsBlockGetByIdx(QString _strJsFile, int _iIdx, QString &_strOut)
{
    _strOut.clear();
    bool bCopy = false;

    QTextCodec *code=QTextCodec::codecForName("utf8");//本人采用的是UTF8格式显示的
    QFile file(_strJsFile);
    file.open(QIODevice::ReadOnly);
    QTextStream stream(&file);
    stream.setCodec(code);//输出流的设置--------必须嘀
    while(stream.atEnd()==0)
    {
        QString str = stream.readLine();
        if (str.startsWith("//###"))
        {
            if (!bCopy)// 不在复制
            {
                QString strRight = str.right(str.length() - 5);
                int iIdx = strRight.toInt();
                if (iIdx == _iIdx)
                    bCopy = true;
            }
            else// 正在复制
                break;
        }
        else
        {
            if (bCopy)
            {
                _strOut += str + "\r\n";
                //qDebug() << "copy";
            }
        }
    }
    return 0;
}

int JS_Oper::JsBlockGetByFnName(QString _strJsFile, QString _strFnName, QString &_strOut)
{
    _strOut.clear();
    bool bCopy = false;

    QTextCodec *code=QTextCodec::codecForName("utf8");//本人采用的是UTF8格式显示的
    QFile file(_strJsFile);
    file.open(QIODevice::ReadOnly);
    QTextStream stream(&file);
    stream.setCodec(code);//输出流的设置--------必须嘀
    while(stream.atEnd()==0)
    {
        QString str = stream.readLine();
        if (str.startsWith("//###"))
        {
            if (!bCopy)// 不在复制
            {
                QString strRight = str.right(str.length() - (5 + 1));// "//###"加一个空格
                if (strRight == _strFnName)
                    bCopy = true;
            }
            else// 正在复制
                break;
        }
        else
        {
            if (bCopy)
            {
                _strOut += str + "\r\n";
                //qDebug() << "copy";
            }
        }
    }
    return 0;
}
